package priv.conceit.sc.hoxton.file.handle.preview;

import org.springframework.stereotype.Component;
import priv.conceit.sc.hoxton.common.entity.file.dto.FilePathDTO;
import priv.conceit.sc.hoxton.common.entity.file.dto.FilePreviewDTO;
import priv.conceit.sc.hoxton.common.util.IoUtil;

import java.io.File;
import java.io.InputStream;

@Component
public class MusicPreviewHandle extends AbsPreviewHandle{
    /**
     * 根据文件实体 将其处理为对应的文件预览类型
     *
     * @param filePathDTO 文件
     * @param file 文件
     * @return FilePreviewDTO 文件预览dto
     * @author conceit
     * @date 2020/5/15 21:21
     */
    @Override
    public FilePreviewDTO preview(FilePathDTO filePathDTO, File file){
        FilePreviewDTO filePreviewDTO=new FilePreviewDTO();
        filePreviewDTO.setContentType("audio/x-wav");
        filePreviewDTO.setBytes(IoUtil.toByteArrayUseFileChannel(file));
        return filePreviewDTO;
    }

    /**
     * 根据流对象 将其处理为对应的文件预览类型
     *
     * @param filePathDTO 文件路径信息
     * @return inputStream 流
     * @return FilePreviewDTO 文件预览dto
     * @author conceit
     * @date 2020/5/15 21:21
     */
    @Override
    public FilePreviewDTO preview(FilePathDTO filePathDTO, InputStream inputStream){
        FilePreviewDTO filePreviewDTO=new FilePreviewDTO();
        filePreviewDTO.setContentType("audio/x-wav");
        filePreviewDTO.setBytes(IoUtil.toByteArray(inputStream));
        return filePreviewDTO;
    }

}
